home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 18 / fpc103.zip / BOOKMARK.SEQ next >
Text File  |  1988-03-01  |  2KB  |  58 lines

  1. \ BOOKMARK.SEQ  Mark your place in a file, to come back to.
  2.  
  3. comment:
  4.  
  5.   Jerry Modrow had a bright idea that it would be nice to be able to
  6. mark your place in a file, such that you could go back to that place
  7. at a later time after having done a VIEW.  This is an implimentation
  8. of that concept.
  9.  
  10. comment;
  11.  
  12. 5 constant #marks
  13.  
  14. create markhandles      #marks b/hcb * allot
  15. create marklines        #marks 2* allot
  16.  
  17. : clr_marks     ( --- )                 \ Clear the Book Marks
  18.                 markhandles #marks 0
  19.                 do      dup clr-hcb b/hcb +
  20.                 loop    drop
  21.                 marklines #marks 2* erase ;
  22.  
  23. clr_marks                               \ Initialize Book Marks to empty
  24.  
  25. : mark_init     ( --- )                 \ Clear Book Marks at Cold Start time
  26.                 defers initstuff
  27.                 clr_marks ;
  28.  
  29. ' mark_init is initstuff
  30.  
  31. : makemarkset   ( n1 --- )              \ Creates the Set Mark words
  32.                 dup #marks >= abort" No more room to create marks!"
  33.                 create ,
  34.                 does> @ dup 2* marklines + loadline @ swap !
  35.                 b/hcb * markhandles + shndl @ swap b/hcb cmove ;
  36.  
  37. 0 makemarkset m1                        \ Three Book Marks for now
  38. 1 makemarkset m2
  39. 2 makemarkset m3
  40. 3 makemarkset m4
  41. 4 makemarkset m5
  42.  
  43. : returntomark  ( n1 --- )              \ Creates the Back to Mark words
  44.                 dup #marks >= abort" No more room to create marks!"
  45.                 create ,
  46.                 does> @ dup b/hcb * markhandles +
  47.                 dup >hndle @ 0 < abort" No Mark to return to."
  48.                 $hopen abort" Error going back to Mark!"
  49.                 2* marklines + @ loadline ! ;
  50.  
  51. 0 returntomark bm1                      \ Three Back to Mark words
  52. 1 returntomark bm2
  53. 2 returntomark bm3
  54. 3 returntomark bm4
  55. 4 returntomark bm5
  56.  
  57.  
  58.